package org.xtremeobjects.anotations.constraints;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * A precondition to an operation is a restriction that must be true 
 * at the moment that the operation is going to be executed. 
 * The obligations are specified by postconditions.
 * @author Juan
 *
 */
@Retention(value=RetentionPolicy.RUNTIME)
public @interface Pre {
	
	/**
	 * Expression
	 * @return
	 */
	String expr();
	
	/**
	 * Message explaining what is the pre-condition
	 * @return
	 */
	String message() default("");
}
